<html>
<head><meta charset="utf-8"><title>Traceability of bugs · t-compiler/wg-incr-comp · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/index.html">t-compiler/wg-incr-comp</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html">Traceability of bugs</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="203854646"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203854646" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203854646">(Jul 14 2020 at 16:27)</a>:</h4>
<p>So it seems so far that we need some better way to spot bugs in incr-comp. Let's talk about ideas here?</p>



<a name="203854825"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203854825" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203854825">(Jul 14 2020 at 16:28)</a>:</h4>
<p>Somehow preserving the cache on ICE is IMO the highest-impact change. People often wipe it accidentally (which sometimes just needs another edit).</p>



<a name="203854842"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203854842" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203854842">(Jul 14 2020 at 16:29)</a>:</h4>
<p>Idea: if ICE was triggered, store a copy of the cache so that it can be sent for inspection.<br>
Drawback: space usage<br>
Possible mitigations: discarding MIR and llvm bitcode before storing. Compressing the cache (in gzip or similar)</p>



<a name="203855168"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203855168" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203855168">(Jul 14 2020 at 16:32)</a>:</h4>
<p>Idea: store the history of changes together with the cache.<br>
Justification: it's basically a cross-platform way of tracking the incr-comp work.<br>
Drawbacks: you'd need to store the project's codebase somehow.<br>
Mitigations: ??</p>



<a name="203855270"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203855270" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203855270">(Jul 14 2020 at 16:32)</a>:</h4>
<p>(I put ?? There because I don't remember if we mentioned drawbacks for that idea)</p>



<a name="203855374"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203855374" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203855374">(Jul 14 2020 at 16:33)</a>:</h4>
<p><span class="user-mention" data-user-id="211727">@Jonas Schievink</span> yeah, I agree. Backing up the cache that broke incr-comp seems the most straightforward way of adding traceability to the process.</p>



<a name="203855383"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203855383" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203855383">(Jul 14 2020 at 16:33)</a>:</h4>
<p>We only need a single diff</p>



<a name="203855687"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203855687" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203855687">(Jul 14 2020 at 16:36)</a>:</h4>
<p>Or rather, we need the original code, and the diff, which I don't think we can obtain right now, unless we store the whole crate source code in the cache</p>



<a name="203855721"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203855721" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203855721">(Jul 14 2020 at 16:36)</a>:</h4>
<p>Yes</p>



<a name="203855812"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203855812" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203855812">(Jul 14 2020 at 16:37)</a>:</h4>
<p>I forgot that <span class="user-mention" data-user-id="116083">@pnkfelix</span>'s work is still in progress. They're looking to answer the question "could incr-comp benefit from changes that might make it history-dependent or not?"</p>



<a name="203855991"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203855991" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203855991">(Jul 14 2020 at 16:38)</a>:</h4>
<blockquote>
<p>Or rather, we need the original code, and the diff, which I don't think we can obtain right now, unless we store the whole crate source code in the cache</p>
</blockquote>
<p>You're right!</p>



<a name="203856094"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203856094" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203856094">(Jul 14 2020 at 16:39)</a>:</h4>
<p>I've added it to the entry</p>



<a name="203856511"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203856511" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203856511">(Jul 14 2020 at 16:43)</a>:</h4>
<p>What's currently making the cache platform-dependent? More than just endianness and pointer size (which is little and 64-bit in almost all cases)?</p>



<a name="203856732"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203856732" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203856732">(Jul 14 2020 at 16:44)</a>:</h4>
<p><span class="user-mention" data-user-id="125250">@Wesley Wiser</span> <span class="user-mention" data-user-id="116107">@davidtwco</span> ^</p>



<a name="203856762"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203856762" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203856762">(Jul 14 2020 at 16:45)</a>:</h4>
<p>(deleted)</p>



<a name="203856763"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203856763" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203856763">(Jul 14 2020 at 16:45)</a>:</h4>
<p>I ask them because I have no idea</p>



<a name="203856811"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203856811" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203856811">(Jul 14 2020 at 16:45)</a>:</h4>
<p>It seems to be a bit of a rabbit hole, from what I've heard. But I don't know for certain.</p>



<a name="203856812"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203856812" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203856812">(Jul 14 2020 at 16:45)</a>:</h4>
<p>(deleted)</p>



<a name="203856813"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203856813" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203856813">(Jul 14 2020 at 16:45)</a>:</h4>
<p>(deleted)</p>



<a name="203856953"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203856953" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203856953">(Jul 14 2020 at 16:46)</a>:</h4>
<p>(Wait did Zulip actually ping you three times, or is it just me who's seeing this?)</p>



<a name="203856986"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203856986" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203856986">(Jul 14 2020 at 16:46)</a>:</h4>
<p>The message was duplicated 3 times</p>



<a name="203857002"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203857002" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203857002">(Jul 14 2020 at 16:46)</a>:</h4>
<p>Fuck</p>



<a name="203857125"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203857125" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203857125">(Jul 14 2020 at 16:47)</a>:</h4>
<p>(There, better... damn, this app needs some work. Okay, sorry for that. Zulip mobile seems to stumble when there's bad internet)</p>



<a name="203857182"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203857182" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203857182">(Jul 14 2020 at 16:48)</a>:</h4>
<p>I'm not sure what else would contribute to incr-comp data being platform-dependent.</p>



<a name="203857312"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203857312" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203857312">(Jul 14 2020 at 16:49)</a>:</h4>
<p>Same (at least in terms of being able to read the data on a different platform)</p>



<a name="203857461"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203857461" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203857461">(Jul 14 2020 at 16:50)</a>:</h4>
<p>I wonder if we could mark platform-dependent queries as such and have the triple be an implicit argument of some sort so that regular invalidation is all that is necessary - might be enough to debug some incr-comp bugs from other platforms?</p>



<a name="203857484"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203857484" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203857484">(Jul 14 2020 at 16:50)</a>:</h4>
<p>Oh, cool! Then I misunderstood what was exactly not cross-platform. Maybe the post-MIR steps?</p>



<a name="203857494"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203857494" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203857494">(Jul 14 2020 at 16:50)</a>:</h4>
<p>But I would be happy with just having the data, platform dependent or not.</p>



<a name="203857503"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203857503" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203857503">(Jul 14 2020 at 16:50)</a>:</h4>
<p>Well</p>



<a name="203857515"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203857515" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203857515">(Jul 14 2020 at 16:50)</a>:</h4>
<p>That said, maybe it already works something like that - I should understand more about it before speculating.</p>



<a name="203857526"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203857526" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203857526">(Jul 14 2020 at 16:51)</a>:</h4>
<p>What's the goal of making it platform independent?</p>



<a name="203857558"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203857558" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203857558">(Jul 14 2020 at 16:51)</a>:</h4>
<p>Is this just so we can investigate bugs or so we can actually use the data in the cache?</p>



<a name="203857576"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203857576" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203857576">(Jul 14 2020 at 16:51)</a>:</h4>
<p>The former seems useful the latter not so much IMO</p>



<a name="203857579"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203857579" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203857579">(Jul 14 2020 at 16:51)</a>:</h4>
<p>I assume the former.</p>



<a name="203857638"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203857638" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203857638">(Jul 14 2020 at 16:51)</a>:</h4>
<p>I think the former</p>



<a name="203857690"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203857690" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203857690">(Jul 14 2020 at 16:52)</a>:</h4>
<p>Ok, just making sure we're all talking about the same things</p>



<a name="203857889"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203857889" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203857889">(Jul 14 2020 at 16:52)</a>:</h4>
<p>In that case, I'm not sure it matters that the results of some queries are platform dependent as long as the on-disk format isn't (or at least, has well defined semantics for conversion).</p>



<a name="203857952"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203857952" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203857952">(Jul 14 2020 at 16:53)</a>:</h4>
<p>Yas</p>



<a name="203857995"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203857995" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203857995">(Jul 14 2020 at 16:53)</a>:</h4>
<p>But even then, I'd prefer to steer the direction of this project toward just getting the data as it is now <em>first</em>.</p>



<a name="203857999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203857999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203857999">(Jul 14 2020 at 16:53)</a>:</h4>
<p>As long as you can convert it to something one can debug later, I'm happy with it being platform-dependent</p>



<a name="203858101"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203858101" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203858101">(Jul 14 2020 at 16:54)</a>:</h4>
<p>We often have a tendency to come up with the <em>best</em> long term solution and then block incremental improvements on that long term plan. When there's a lot of benefit to be had to the flawed but better thing right <em>now</em></p>



<a name="203858105"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203858105" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203858105">(Jul 14 2020 at 16:54)</a>:</h4>
<blockquote>
<p>But even then, I'd prefer to steer the direction of this project toward just getting the data as it is now <em>first</em>.</p>
</blockquote>
<p>I've got no complaints with that either ^^</p>



<a name="203858134"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203858134" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203858134">(Jul 14 2020 at 16:54)</a>:</h4>
<p>Just having this data would improve things substantially IMO</p>



<a name="203858175"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203858175" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203858175">(Jul 14 2020 at 16:55)</a>:</h4>
<p>It's also not that hard to get a Windows VM on Linux or vice versa.</p>



<a name="203858217"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203858217" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203858217">(Jul 14 2020 at 16:55)</a>:</h4>
<p>Yup. If I understand it correctly, we basically got no way to get data on our hands rn regarding these kinds of bugs right?</p>



<a name="203858231"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203858231" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203858231">(Jul 14 2020 at 16:55)</a>:</h4>
<p>And that's probably covers 75% of the bugs reports we've seen.</p>



<a name="203858292"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203858292" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203858292">(Jul 14 2020 at 16:56)</a>:</h4>
<p>That would be amazing</p>



<a name="203858314"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203858314" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203858314">(Jul 14 2020 at 16:56)</a>:</h4>
<p>I think occasionally we do get a copy of the user's incr-cache if they knew to upload it to the bug.</p>



<a name="203858325"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203858325" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203858325">(Jul 14 2020 at 16:56)</a>:</h4>
<p>But I'm not sure we know <em>what</em> to do with that.</p>



<a name="203858525"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203858525" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203858525">(Jul 14 2020 at 16:58)</a>:</h4>
<p>Right, right. No, that makes sense. If we haven't gone through the process of answering what to do with the evidence, then how would we use it when we have it?</p>



<a name="203858582"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203858582" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203858582">(Jul 14 2020 at 16:58)</a>:</h4>
<p>Perhaps someone else has a plan with what to do with it but I'm not aware of anything</p>



<a name="203858677"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203858677" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203858677">(Jul 14 2020 at 16:59)</a>:</h4>
<p>It seems like there could perhaps be some sort of validation process we could just run on the data to see if some obvious things are wrong. Ie: this slice claims to have a length of 6billion elements. That's probably wrong.</p>



<a name="203858736"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203858736" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203858736">(Jul 14 2020 at 17:00)</a>:</h4>
<p>But then if have such an algorithm, it seems like we could run this at ICE time (what I suggested above).</p>



<a name="203858876"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203858876" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203858876">(Jul 14 2020 at 17:00)</a>:</h4>
<p>I realize I'm steering the conversation one way so if anyone wants to talk about something else, please feel free to interrupt me</p>



<a name="203858895"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203858895" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203858895">(Jul 14 2020 at 17:01)</a>:</h4>
<p>It's okay</p>



<a name="203858922"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203858922" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203858922">(Jul 14 2020 at 17:01)</a>:</h4>
<p>So to reproduce bugs, we don't just need the incremental cache, but also the source code that was attempted to be compiled, and even that is hard to come by sometimes</p>



<a name="203858935"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203858935" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203858935">(Jul 14 2020 at 17:01)</a>:</h4>
<p>The number one question on my mind is: Is the cache getting corrupted somehow or is the cache valid and we have bug when we use that valid data?</p>



<a name="203858955"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203858955" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203858955">(Jul 14 2020 at 17:01)</a>:</h4>
<p>But I guess easy to save when the ICE handler also saves the cache</p>



<a name="203858959"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203858959" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203858959">(Jul 14 2020 at 17:01)</a>:</h4>
<p>This is a very green field, I feel. There might be many directions to pursue which could give big benefits</p>



<a name="203859000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203859000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203859000">(Jul 14 2020 at 17:01)</a>:</h4>
<p><span class="user-mention silent" data-user-id="211727">Jonas Schievink</span> <a href="#narrow/stream/241847-t-compiler.2Fwg-incr-comp/topic/Traceability.20of.20bugs/near/203856511">said</a>:</p>
<blockquote>
<p>What's currently making the cache platform-dependent? More than just endianness and pointer size (which is little and 64-bit in almost all cases)?</p>
</blockquote>
<p>there might be file paths that would need. to be normalized/relativized. Not sure.</p>



<a name="203859209"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203859209" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203859209">(Jul 14 2020 at 17:03)</a>:</h4>
<p>Well, a checker of the cache could be really useful not only just at the event of an ICE. It could also be used to debug incr-cache. Imagine giving it as a compiler flag (-check-incr-cache) and run it through some tests to see if it breaks the cache.</p>



<a name="203859232"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203859232" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203859232">(Jul 14 2020 at 17:03)</a>:</h4>
<p>It <em>just</em> occured to me that MCVEs aren't particularly practical to synthesise for incr-comp bugs - we'd probably be working with full projects (and tons more log output) rather than individual files..</p>



<a name="203859333"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203859333" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203859333">(Jul 14 2020 at 17:04)</a>:</h4>
<p>(I'm not 100% convinced that having ICE-free incr. comp. is much more important than having <em>effective</em> incr. comp. – when an ICE happens the workaround is always trivial, but when incr. comp. results in unexpectedly long compile times there is no workaround)</p>



<a name="203859364"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203859364" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203859364">(Jul 14 2020 at 17:05)</a>:</h4>
<p>Well, more than ICE free, you want it to be correct</p>



<a name="203859420"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203859420" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203859420">(Jul 14 2020 at 17:05)</a>:</h4>
<p>ICE is just an indicator of some incorrectness (that word feels weird)</p>



<a name="203859431"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203859431" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203859431">(Jul 14 2020 at 17:05)</a>:</h4>
<p>Yeah, sure, that <em>is</em> important, but I'm not sure if we have any correctness bugs?</p>



<a name="203859451"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203859451" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203859451">(Jul 14 2020 at 17:06)</a>:</h4>
<p>How would we know?</p>



<a name="203859495"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203859495" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203859495">(Jul 14 2020 at 17:06)</a>:</h4>
<p>more that they're really hard to detect</p>



<a name="203859503"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203859503" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203859503">(Jul 14 2020 at 17:06)</a>:</h4>
<blockquote>
<p>Is the cache getting corrupted somehow or is the cache valid and we have bug when we use that valid data?</p>
</blockquote>
<p>If the cache is corrupt, then we're either:</p>
<ul>
<li>
<p>writing bad data to it and we could narrow the search space by running the validation routine at the end of the compilation session when we write to the cache.</p>
</li>
<li>
<p>writing ok data which something <em>else</em> is messing with. For windows users, this might be an AV program or something.</p>
</li>
</ul>
<p>If the cache is valid, then maybe the bug has something to do with how we restore cached data into the current compilation session's in-memory query cache.</p>



<a name="203859507"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203859507" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203859507">(Jul 14 2020 at 17:06)</a>:</h4>
<p>Ah, not <em>soundness</em> bug</p>



<a name="203859577"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203859577" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203859577">(Jul 14 2020 at 17:07)</a>:</h4>
<p>There isn't any kind of checksum on the cache data, right?</p>



<a name="203859592"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203859592" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203859592">(Jul 14 2020 at 17:07)</a>:</h4>
<p>That we're seeing these ICEs trying to use the incr-cache data after it's been loaded suggests we have correctness bugs because the ICE's aren't from asserts about the incr-cache, they're from general asserts in std lib (ie, index out of range).</p>



<a name="203859603"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203859603" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203859603">(Jul 14 2020 at 17:07)</a>:</h4>
<p>I thought there was</p>



<a name="203859641"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203859641" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203859641">(Jul 14 2020 at 17:07)</a>:</h4>
<p>Which is why it's perplexing to me that some of these issues get reported after a new release is shipped and clearing the cache goes away</p>



<a name="203859655"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203859655" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203859655">(Jul 14 2020 at 17:07)</a>:</h4>
<p>That's what the checksum was supposed to prevent.</p>



<a name="203859722"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203859722" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203859722">(Jul 14 2020 at 17:08)</a>:</h4>
<p>Probably related: I see frequent complaints from compiler devs that their stage1 cache isn't getting invalidated correctly.</p>



<a name="203859742"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203859742" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203859742">(Jul 14 2020 at 17:08)</a>:</h4>
<p>And then you get weird linking errors</p>



<a name="203859744"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203859744" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203859744">(Jul 14 2020 at 17:08)</a>:</h4>
<p>You mean having the compiler version in the cache?</p>



<a name="203859758"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203859758" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203859758">(Jul 14 2020 at 17:08)</a>:</h4>
<p>Yeah I thought that was part of the checksum</p>



<a name="203859773"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203859773" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203859773">(Jul 14 2020 at 17:08)</a>:</h4>
<p>I think that is separate</p>



<a name="203859781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203859781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203859781">(Jul 14 2020 at 17:08)</a>:</h4>
<p>Ah</p>



<a name="203859860"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203859860" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203859860">(Jul 14 2020 at 17:09)</a>:</h4>
<blockquote>
<p>That we're seeing these ICEs trying to use the incr-cache data after it's been loaded suggests we have correctness bugs because the ICE's aren't from asserts about the incr-cache, they're from general asserts in std lib (ie, index out of range).</p>
</blockquote>
<p>This is why these issues worry me, mostly. If incr-comp is breaking basic invariants ("hey NO bringing usizes below zero!") then what the heck might be happening there.</p>



<a name="203860040"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203860040" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203860040">(Jul 14 2020 at 17:10)</a>:</h4>
<p>I think we want to... just make sure incr-comp sits on steady foundations, mostly</p>



<a name="203860055"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203860055" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203860055">(Jul 14 2020 at 17:10)</a>:</h4>
<p>Just in case</p>



<a name="203860176"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203860176" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203860176">(Jul 14 2020 at 17:12)</a>:</h4>
<p>I don't want to have incr-comp be fast only to later realize it ain't compiling correctly. Like some -O3 optimizations in clang breaking your code</p>



<a name="203860331"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203860331" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203860331">(Jul 14 2020 at 17:13)</a>:</h4>
<p>I don't know if these worries make sense. Can you break the compilation artifacts if incr-comp is not working correctly? I'm assuming you can, but maybe you can't?</p>



<a name="203860345"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203860345" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203860345">(Jul 14 2020 at 17:13)</a>:</h4>
<p>things like that are an argument, in a way, against adding history-dependence</p>



<a name="203860376"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203860376" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203860376">(Jul 14 2020 at 17:13)</a>:</h4>
<p>because bugs are more shallow when results are history independent</p>



<a name="203860439"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/203860439" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#203860439">(Jul 14 2020 at 17:14)</a>:</h4>
<p>(because the search for bugs is more effectively distributed across the audience of Rust programmers)</p>



<a name="204023074"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/204023074" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#204023074">(Jul 15 2020 at 22:55)</a>:</h4>
<p>something kind of related to the discussion, I have seen some incr comp bug reports where we don't have the needed information to reproduce the issue but we don't provide the right information for people that report bugs to provide such information, so ...</p>



<a name="204023175"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/204023175" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#204023175">(Jul 15 2020 at 22:56)</a>:</h4>
<p>I wonder if we can document something better or if we can have some kind of ICE breaker group that we can ping and a bot would ping some of us but also would provide some information to reporters</p>



<a name="204023215"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/241847-t-compiler/wg-incr-comp/topic/Traceability%20of%20bugs/near/204023215" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/241847-t-compiler/wg-incr-comp/topic/Traceability.20of.20bugs.html#204023215">(Jul 15 2020 at 22:57)</a>:</h4>
<p>the problem I see also is that some reports are old and they may not be easy to reproduce because reporters may have move on</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>